1. Field of the Invention
The present invention relates to memory circuits. More particularly, the present invention relates to a random access memory cell configurable to store preprogrammed data.
2. Background
Many computer systems include volatile and nonvolatile memory devices. Volatile memory is typically faster than nonvolatile memory. Thus, volatile memory is generally used to store data that a system may need to retrieve quickly such as data used by a computer program. While volatile memory is fast, it loses its data when power is removed. Examples of volatile memory include static random access memory (SRAM) and dynamic random access memory (DRAM).
Nonvolatile memory is slower than volatile memory, but nonvolatile memory retains its state when power is removed. Nonvolatile memory is generally used to store data that needs to be saved for long periods of time or needs some degree of security. Examples of such data are BIOS, program code, and system software. Nonvolatile memory devices include read only memory (ROM), EPROM, EEPROM, flash, magnetic storage media, compact disks, laser disks, and optical disks.
Some memory cells have been developed that include both a volatile memory circuit and a nonvolatile memory circuit. For example, U.S. Pat. Nos. 4,510,584, 4,538,246, 4,638,465, and 5,353,248, disclose memory cells having a nonvolatile circuit that stores the state of a volatile circuit such that data stored in the volatile memory circuit is not lost when power is removed from the memory cell. The size of these memory cells are larger than the size of conventional volatile memory cells to accommodate the additional nonvolatile circuitry. Thus, the number of memory cells including both volatile and nonvolatile circuits is less than the number of conventional volatile memory cells per area of silicon. Therefore, what is needed is a mechanism for including a volatile and nonvolatile memory function in a memory cell without substantially enlarging the size of the memory cell.
Additionally, complex circuitry or additional power supply voltages may be required to control the operation of conventional memory cells having volatile and nonvolatile memory circuits. The circuits may require additional commands to invoke their operation or additional power supply voltages to program the nonvolatile memory circuit of the memory cell. Thus, what is needed is a mechanism for including a volatile and nonvolatile memory function in a memory cell while simplifying the circuitry required to operate the memory cell.
Typically read only nonvolatile memory devices such as ROMs are also used to store important data that a system does not wish a user to change. For example, a ROM device may store BIOS, system software, or other program code (e.g., video game code). To alter this data, a system typically reads out the data from the nonvolatile memory device, and then writes the data to a volatile memory device such as an SRAM device. Depending upon the size of the data copied to the SRAM device, this can require a significant amount of operating time. Therefore, what is needed is a volatile memory that has a nonvolatile memory capacity that can be accessed by a system without first copying the nonvolatile memory data to a volatile memory cell. Also, what is needed is a nonvolatile memory that has substantially the same speed (i.e., access time) as volatile memory.